O Objetivo 🎯
- A Tarefa: Encontre a melhor rota a partir de um servidor de origem `S` até todos os outros servidores.
- A Saída: Para cada servidor `i`, você deve calcular:
- Latência Total: O custo mínimo (caminho mais curto) desde `S` até `i`.
- Próximo Salto: O *primeiro servidor* desse caminho mais curto.
- Exemplo: Se o melhor caminho de `S` até `D` for `S -> A -> B -> D`, o **Próximo Salto** é `A`.
A Rede 💾
Vamos usar uma Lista de Adjacência para armazenar a rede.
- Servidores são nós.
- Conexões são arestas bidirecionais.
- A latência é um peso positivo.
// Ligações: 0-1 (10ms), 0-2 (3ms)
adj = [
0:[(1, 10), (2, 3)],
1:[(0, 10)],
2:[(0, 3)],
...
]
adj = [
0:[(1, 10), (2, 3)],
1:[(0, 10)],
2:[(0, 3)],
...
]
Formato da Saída ⚙️
Você deve imprimir `V` linhas. Cada linha `i` corresponde ao servidor `i`.
[latência] [próximo_salto]Para um nó alcançável.
0 -1Se o nó for a própria fonte `S`.
-1 -1Se o nó for inacessível a partir de `S`.